package com.heima.service.impl;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.heima.pojo.SkuClass;
import com.heima.pojo.dto.SkuClassDTO;
import com.heima.common.PageResult;
import com.heima.mapper.SkuClassMapper;
import com.heima.service.SkuClassService;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;

import java.time.LocalDateTime;
import java.util.List;

@Service
public class SkuClassServiceImpl implements SkuClassService {
    private final SkuClassMapper skuClassMapper;

    public SkuClassServiceImpl(SkuClassMapper skuClassMapper) {
        this.skuClassMapper = skuClassMapper;
    }

    @Override
    public boolean addSkuClass(SkuClassDTO skuClassDTO) {
        SkuClass skuClass = new SkuClass();
        skuClass.setClassName(skuClassDTO.getClassName());
        skuClassMapper.insert(skuClass);
        if (Long.valueOf(skuClass.getClassId()) > 0) {
            return true;
        } else {
            return false;
        }


    }

    @Override
    public PageResult<SkuClass> page(SkuClassDTO skuClassDTO) {
        //用pageHelper完成分页查询
        //1.设置分页参数
        PageHelper.startPage(skuClassDTO.getPageIndex(), skuClassDTO.getPageSize());
        //2.查询数据
        List<SkuClass> skuClassList = skuClassMapper.page(skuClassDTO);
        //3.封装数据
        Page page = ( Page) skuClassList;
        PageResult<SkuClass> pageResult = new PageResult<>();
        pageResult.setPageIndex(skuClassDTO.getPageIndex());
        pageResult.setPageSize(skuClassDTO.getPageSize());
        pageResult.setTotalCount(page.getTotal());
        pageResult.setTotalPage(page.getPages());
        pageResult.setCurrentPageRecords(page.getResult());
        return pageResult;
    }


    //商品分类查询（Id）
    @Override
    public SkuClass getById(Integer id) {
        return skuClassMapper.getById(id);
    }

    @Override
    public Boolean update(Integer id, SkuClassDTO skuClassDTO) {
        SkuClass skuClass = new SkuClass();
        BeanUtils.copyProperties(skuClassDTO, skuClass);
        skuClassMapper.update(skuClass);
        return true;
    }

    @Override
    public void delete(Integer id) {
        skuClassMapper.delete(id);
    }
}
